<!-- 物业报修 -->
<template>
    <div id="myMain">
        <div class="myMain-padding picture-main displayFlexC">
            <div>
                <span style="float:left;line-height:40px;margin-right:10px;">全表搜索：</span>
                <el-input v-model="searchVal" placeholder="" @input="searchEvents" prefix-icon="el-icon-search"></el-input>
            </div>
            <vxe-table
                ref="xTable"
                :filter-config="{showIcon: false}"
                border
                stripe
                highlight-hover-row
                :data="tableData"
                :export-config="{}"
                row-id="id"
                :seq-config="{startIndex: (tablePage.currentPage - 1) * tablePage.pageSize}">
                <vxe-table-column type="checkbox" width="60"></vxe-table-column>
                <vxe-table-column type="seq" title="序号" width="100"></vxe-table-column>
                <vxe-table-column field="parkName" title="园区名称" width="130"></vxe-table-column>
                <!-- <vxe-table-column field="address" title="具体地址" width="250"></vxe-table-column> -->
                <vxe-table-column field="buildName" title="楼栋" width="100"></vxe-table-column>
                <vxe-table-column field="high" title="楼层" width="100"></vxe-table-column>
                <vxe-table-column field="unit" title="单元号" width="100"></vxe-table-column>
                <vxe-table-column field="firmName" title="企业名称" width="150"></vxe-table-column>
                <vxe-table-column field="linkman" title="联系人" width="100"></vxe-table-column>
                <vxe-table-column field="phone" title="联系电话" width="130"></vxe-table-column>
                <vxe-table-column field="repairsType" title="报修类型" width="130"></vxe-table-column>
                <vxe-table-column field="repairsTime" title="报修时间" width="130"></vxe-table-column>
                <vxe-table-column field="repairsText" title="报修说明" width="250"></vxe-table-column>
                <vxe-table-column field="repairsStatus" title="是否处理" width="100"></vxe-table-column>
                <vxe-table-column title="操作" width="100" fixed="right">
                    <template #default="{ row }">
                        <span v-if="row.repairsStatus == '已处理'">

                        </span>
                        <span v-else>
                            <vxe-button type="text" title="完成" class="my_primary_btn" @click="fix(row)">完成</vxe-button>
                        </span>
                    </template>
                </vxe-table-column>
            </vxe-table>
            <!-- 分页 -->
            <vxe-pager
            perfect
            size="mini"
            :current-page="tablePage.currentPage"
            :page-size="tablePage.pageSize"
            :page-sizes="tablePage.pageSizes"
            :total="tablePage.totalResult"
            @page-change="pageChange"
            :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Total']">
            </vxe-pager>
        </div>
    </div>
</template>
<style lang="scss" scoped>
@import '../../styles/all.scss';
</style>
<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from '《组件路径》';
import { getFixInfo, putFixInfoByStatus } from '@/api/my-fix'
import XEUtils from 'xe-utils'
export default {
//import引入的组件需要注入到对象中才能使用
components: {},
data() {
//这里存放数据
    return {
        searchVal: '',
        tableData: [],
        list: [],
        // 分页
        tablePage: {
            currentPage: 1,
            pageSize: 10,
            pageSizes: [10, 20, 30, 40],
            totalResult: 0
        },
    };
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {
    init(page, limit){
        let result = []
        getFixInfo(page, limit).then(res => {
            console.log("fix res", res)
            result = JSON.parse(JSON.stringify(res.data))
            result.forEach(ele => {
                if(ele.repairsStatus == 0){
                    ele.repairsStatus = '未处理'
                }else{
                    ele.repairsStatus = '已处理'
                }
            })
            this.list = result
            this.tableData = result
            this.tablePage.totalResult = res.count
        })
    },
    // 根据页切换
    pageChange(val){
        console.log('page val', val)
        this.tablePage.currentPage = val.currentPage
        let page = val.currentPage
        let limit = val.pageSize
        this.init(page, limit)
    },
    // 搜索
    searchEvents () {
        const filterVal = XEUtils.toValueString(this.searchVal).trim().toLowerCase()
        const filterRE = new RegExp(filterVal, 'gi')
        const searchProps = ['parkName', 'buildName', 'high', 'unit', 'firmName', 'linkman', 'phone', 'repairsType', 'repairsTime','repairsText', 'repairsStatus']
        const rest = this.list.filter(item => searchProps.some(key => XEUtils.toValueString(item[key]).toLowerCase().indexOf(filterVal) > -1))
        this.tableData = rest.map(row => {
            const item = Object.assign({}, row)
            searchProps.forEach(key => {
            item[key] = XEUtils.toValueString(item[key]).replace(filterRE, match => `${match}`)
            })
            return item
        })
    },
    fix(row){
        this.$confirm('是否已处理？', '', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
            putFixInfoByStatus(row.id, 1).then(res => {
                console.log("put status", res)
                if(resp_code ==0){
                    this.$XModal.message({ message: '操作成功！', status: 'success' })
                    this.init(this.tablePage.currentPage, this.tablePage.pageSize)
                }
                
            })
        })
    }
},
//生命周期 - 创建完成（可以访问当前this实例）
created() {

},
//生命周期 - 挂载完成（可以访问DOM元素）
mounted() {
    this.init(this.tablePage.currentPage, this.tablePage.pageSize)
},
beforeCreate() {}, //生命周期 - 创建之前
beforeMount() {}, //生命周期 - 挂载之前
beforeUpdate() {}, //生命周期 - 更新之前
updated() {}, //生命周期 - 更新之后
beforeDestroy() {}, //生命周期 - 销毁之前
destroyed() {}, //生命周期 - 销毁完成
activated() {}, //如果页面有keep-alive缓存功能，这个函数会触发
}
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css类

</style>